#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#define es_bisiesto(a) (a)%400?!((a)%4)&&(a)%100?1:0:1
#include "funcArchivos.h"
#include "funcVarias.h"


int main ()
{
    t_fecha fec_proc_main;
    char ruta[101], ruta_dat[101], ruta_idx[101];
    t_indice indice;
    crear_indice(&indice);
    const char opciones[][70] = {"123456",
                                 "GENERAR ARCHIVOS",
                                 "EFECTUAR MANTENIMIENTO (ALTAS, BAJAS Y MODIFICACIONES)",
                                 "LISTAR LOS DADOS DE BAJAS",
                                 "LISTARLOS EN ORDEN (SIN LOS DADOS DE BAJAS)",
                                 "DEPURACION",
                                 "SALIR"};
    char op;
    system("cls");
    printf("Por Favor, Ingrese la Fecha de Proceso (dd/mm/aaaa): ");
    fflush(stdin);
    scanf("%d/%d/%d", &fec_proc_main.dia, &fec_proc_main.mes, &fec_proc_main.anio);
    fflush(stdin);
    while(!valida_fecha(fec_proc_main))
    {
    printf("Fecha invalida, Reingrese la Fecha de Proceso (dd/mm/aaaa): ");
    fflush(stdin);
    scanf("%d/%d/%d", &fec_proc_main.dia, &fec_proc_main.mes, &fec_proc_main.anio);

    }
    //Para pruebas... eliminar dsp y descomentar lo de arriba....
    //fec_proc_main.dia=9;
    //fec_proc_main.mes=10;
    //fec_proc_main.anio=2011;
    fflush(stdin);
    solicita_path(ruta, "archivo binario (sin la extension)");
    strcpy(ruta_dat, ruta);
    strcat(ruta_dat, ".dat");

    strcpy(ruta_idx, ruta);
    strcat(ruta_idx, ".idx");

    cargar_indice(&indice,ruta_idx );

    system("CLS");
    do
    {
        op=menu(opciones, "TRABAJO PRACTICO");
        switch(op)
        {
            case '1':func_gen_archi(ruta,&indice);break;
            case '2':func_efect_mant(&indice, ruta, fec_proc_main);break;
            case '3':func_listar_bajas(ruta);break;
            case '4':func_listar_orden(&indice, ruta);break;
            case '5':fun_Depura_Archivo(ruta);break;
        }

    }while(op!='6');
    fflush(stdin);
    //grabar_indice(&indice);
    return 0;
}



